package fiuba.algo3.persistencia;

import java.util.List;

import fiuba.algo3.mundo.Posicion;
import fiuba.algo3.XMLProcessor.nucleo.NodoXML;

public abstract class ConstructorPosicion
{
	public static final String CLASE = "Posicion";

	private static boolean puedeSerConstruido(NodoXML nodo)
	{
		return nodo.nombre().equals("objeto") &&
				nodo.obtenerValorAtributo("clase").equals(CLASE);
	}

	public static Posicion construir(NodoXML nodoObjetoPosicion)
	{
		if (!puedeSerConstruido(nodoObjetoPosicion)) return null;

		List<NodoXML> tablaValores = nodoObjetoPosicion.obtenerHijos();

		float x = 0;
		float y = 0;

		for (NodoXML nodo : tablaValores)
		{
			if (nodo.nombre().equals("campo"))
				{
					String valor = nodo.obtenerValorAtributo("nombre"); 

					if (valor.equals("x"))
						x = (Float)ConstructorPrimitivos.construir(nodo.obtenerPrimogenito());
					else if (valor.equals("y"))
						y = (Float)ConstructorPrimitivos.construir(nodo.obtenerPrimogenito());
				}
		}

		return new Posicion(x,y);
	}
}
